Method of animating messages

ABSTRACT

The present invention relates to rendering texts in a natural language, namely to manipulating a text in a natural language to generate an image or animation corresponding to this text. The invention is unique mainly in that a sequence of animations is selected, semantically corresponding to a given text. Given a set of animations and a text, the invention makes it possible to compare the sequence of these animations to this text. It is unique in that text templates are used and an optimum sequence of these templates is determined. The idea of the template-based text rendering consists in that the text is manipulated to generate an image or animation with the aid of searching correspondences to a limited number of predefined templates. An animation according to certain style is selected in compliance with each template. Animations are sequentially combined into a single sequence of video images.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a U.S. National phase application of theInternational application PCT/RU2011/000966, filed Dec. 8, 2011, theentire contents of which International application being herebyincorporated by reference.

BACKGROUND OF THE INVENTION 1. Technical Field

The present invention relates to processing texts presented in a naturallanguage, namely to converting a natural language text into an image oranimation corresponding to this text. More particularly, the inventionrelates to implementation of the text processing based on templates.

2. Description of the Prior Art

Known have been various solutions enabling a text to be analyzed so thatstatic images may be formed based on the analysis results.

Also, solutions exist, enabling scenes and animations to be createdmanually by drawing the objects, characters, scenes so that atwo-dimensional (or even three-dimensional) animated clips or staticimages may be ultimately obtained.

No solutions are known which would provide for converting automaticallya natural language text into an animated clip by algorithmicallycombining previously made animated clips into a set, which logicallycorresponds to the text in a natural language even if limited to acertain vocabulary or topics including, but not limited to, the use ofthe most commonly used words and phrases including colloquial ones.

SUMMARY OF THE INVENTION

The technical effect achievable from the use of the claimed inventionlies in enhancing the range of technical capabilities as related torendering a text written in a natural language (creating animationsbased on the text).

According to the first aspect of the present invention, a method isprovided for animating an original text in a natural language, saidmethod comprising the steps of:

providing the original text in a natural language;

dividing the text into sentences;

dividing each sentence into words;

reducing each word to a normalized form thus creating a normalized textout of the original natural language text;

providing a set of text templates;

selecting a sequence of the templates for each of the sentences of thenormalized text;

combining the sequence of the templates for each of the sentencesseriated into a single common sequence of templates;

providing a set of animation files;

selecting at least one animation file of the set for each template ofthe common sequence of templates;

combining the selected animation files into a resulting clip.

The method of animating an original text in a natural language canadditionally comprise a formalized replacement of words, phrases andsymbols with predefined words, phrases or symbols equivalent thereto.

The method of animating an original text in a natural language canadditionally comprise correcting misprints in the words.

The method of animating an original text in a natural language canadditionally comprise selecting neutral background animations for eachtemplate.

The method of animating an original text in a natural language canadditionally comprise searching a cache for the sequence of templatescorresponding to the normalized text and selecting the sequence oftemplates from the cache if found therein.

The method of animating an original text in a natural language accordingto the present invention can additionally provide assigning at least onestyle of animation to the original text when selecting animations forthe common sequence of templates, the step of assigning comprisingsubsteps of:

providing a set of styles of animation;

examining whether a style of animation of the set is predefined for theoriginal text;

selecting animations corresponding to the predefined style provided thatan animation of each template from the common sequence of templates isavailable in the predefined style;

selecting randomly the style of the set for which animations of eachtemplates of the common sequence are available if no such style ispredefined or there is more than one such style available; and

selecting animations in various styles if no style with animations ofeach templates of the common sequence is available.

The method of animating an original text in a natural language canadditionally comprise saving the original text of request, the selectedsequence of templates in a database; and updating statistics fortemplates, words, animations, the list of unknown words and statisticsfor unknown words.

According to a second aspect of the present invention, a method isprovided for searching an optimum sequence of templates for subsequentlyselecting animations corresponding to the sequence of templates, saidmethod comprising the steps of:

(a) selecting all such templates from the whole list of templates toform a sub-list in which all words are included in a sentence, theselection of such templates being performed from templates havinganimations in a particular style rather than from the whole list of alltemplates if the particular animation style is preset;

(b) analyzing the sub-list of templates obtained in step (a) to have thetemplates ranged according to their hierarchy, the rank of a templatebeing defined by the level of hierarchy;

(c) excluding the templates with a minimum rank (a higher level) fromthe sub-list obtained in step (a) if templates belonging to the samehierarchy but having different levels thereof are included in thesub-list;

(d) selecting an optimum set of templates for which a target functionwill have the most optimum value from the sub-list of templates obtainedin step (c),

the target function being presented as:

${{f(x)} = {{{k_{1}*\frac{1}{N_{crosses}}} + {k_{2}*N_{coverage}} + {k_{3}*N_{rank}} + {k_{4}*N_{{pairs}\mspace{11mu}{in}{\;\;}{correct}\mspace{14mu}{sequence}}} - {k_{4}*N_{{pairs}\mspace{11mu}{in}\mspace{11mu}{incorrect}{\mspace{11mu}\;}{sequence}}}}->{MAX}}},$

where:

N_(crosses) is a number of crossings of the template words in the set oftemplates,

N_(coverage) is an aggregate coverage of all words by the templates (thenumber of all words from a sentence, encountered in the templates),

N_(rank) is an aggregate rank of all templates from the set,

N_(pairs in correct sequence) is a number of word pairs of the composite(i.e., consisting of a few words) templates corresponding to thesequence of words in a phrase,

N_(pairs in incorrect sequence) is a number of word pairs of thecomposite templates not corresponding to the sequence of words in aphrase, and

k₁, k₂, k₃, k₄ are empirically calculated coefficients. They have avalue of 0.4, 0.33, 0.4, 0.2, respectively.

The method of searching an optimum sequence of templates forsubsequently selecting animations corresponding to the sequence oftemplates further comprises searching an optimum value of the targetfunction either by exhausting the possibilities (successively goingthrough all combinations of unique templates) or by means ofmulticriteria optimization.

The method of searching an optimum sequence of templates forsubsequently selecting animations corresponding to the sequence oftemplates further comprises determining whether any sequencescorresponding to the normalized test are available in the cache andselecting a sequence of templates from the cache if is available.

The method of searching an optimum sequence of templates forsubsequently selecting animations corresponding to the sequence oftemplates further comprises determining whether an animation style isset for the original text and

selecting animations corresponding to the style if it is set providedthat an animation of each template from the sequence is available inthis style; or

randomly selecting the style for which all animations are available forthe selected templates if no such style is set; or

randomly selecting any style if there is a number of such styles; or

using a selection of animations in various styles if no such styles areavailable.

The method of searching an optimum sequence of templates forsubsequently selecting animations corresponding to the sequence oftemplates further comprises saving in the database the original text ofrequest and the selected sequence of templates; and updating statisticsfor templates, words, animations, the list of unknown words andstatistics for unknown words.

According to a third aspect of the present invention, a secondembodiment is provided of the method of searching an optimum sequence oftemplates for subsequently selecting animations corresponding to thesequence of templates, said method comprising the steps of:

finding all templates all words of which are found in the phrase beingsought by using an algorithm of defining the Levenshtein distance;

sorting the found templates by the number of words in ascending orderand sequentially determining, for each template from this formed set oftemplates, whether a template is a part of any other template from theset, and deleting such a template if this is the case;

defining in the resulting set of templates the templates non-crossingeach other and crossing each other;

adding the non-crossing templates to the resulting set;

calculating for each template an average value of the template wordpositions in the text; and

sorting the templates by that average value to obtain an optimumsequence of templates.

The second embodiment of the method of searching an optimum sequence oftemplates for subsequently selecting animations corresponding to thesequence of templates further comprises determining in the crossingtemplates the rate of crossing (number of word crosses) the words fromthe set of non-crossing templates and the number of new words coveringthe phrase, which are not included in this set.

The second embodiment of the method of searching an optimum sequence oftemplates for subsequently selecting animations corresponding to thesequence of templates further comprises forming the optimum set oftemplates from the crossing templates if no non-crossing templatesexist, considering the following criteria: maximum aggregate rank,maximum coverage, minimum crosses;

the set of templates being formed by carrying out the following steps:

(a) selecting a first template with a maximum weight, said templateweight being the number of words in the template;

(b) selecting templates minimally crossing the first template andnon-crossing each other;

(c) selecting from the remaining templates those templates thatcontain >=50% of new words; in doing so

(d) if in step (a) several templates with a maximum weight wereavailable, the set having a maximum difference between the aggregaterank of templates and the number of word crosses is selected as theresulting set of templates.

According to a fourth aspect of the present invention, a method isprovided of animating SMS messages, said method comprising the steps of:

receiving an SMS message from a sender;

analyzing the received SMS message by defining the message text;

sending a request containing the text to an animation system;

selecting animations using the above described method of selectinganimations corresponding to a text in a natural language;

combining the selected animations and sending same to a serviceprovision system;

forming an MMS containing the received animation and sending same to arecipient.

The method of animating SMS messages further comprises displaying in theSMS message the recipient's phone number and the message text.

The method of animating SMS messages further comprises identifying thesender and the recipient in the received SMS message.

The method of animating SMS messages further comprises sending to thesender an SMS message specifying that the animation has been sent orfailed.

According to a fifth aspect of the present invention, a secondembodiment of the method of animating SMS messages is provided, saidmethod comprising the steps of:

receiving an SMS message from a subscriber;

analyzing the received SMS message to emphasize the message text;

sending a request with text to an animation system;

selecting an image or an animation using the above described method ofselecting animations corresponding to a text in a natural language;

sending the selected image or animation to the service processingsystem;

forming an MMS containing the image or animation and sending to thesubscriber.

The second embodiment of the method of animation of SMS messages furthercomprises identifying the subscriber in the received SMS message.

The present invention may encompass any combination of the abovefeatures or limitations except for combinations of such features whichare mutually exclusive.

BRIEF DESCRIPTION OF THE DRAWINGS

The above features and advantages of the present invention will be moreclearly understood from the ensuing description accompanied by thedrawings, in which

FIG. 1 shows an exemplary implementation of the animation system and

FIG. 2 shows an exemplary implementation of the SMS messages animationusing the animation system.

DETAILED DESCRIPTION OF THE INVENTION

The animation selection algorithm is implemented by an animation system10 (FIG. 1) within a separate web service 12 realized using theMicrosoft ASP.NET technology. The web service refers to the databaseimplemented under the control of the Microsoft SQL Server. The selectionof technology (ASP.NET, SQL Server) and way of implementation (webservice) is not obligatory. Equally well, the algorithm may beimplemented in a window-based application written, for example, in aprogramming language (c, c#, c++, Pascal and others), and conventionaltext files may be selected as the database.

The web service comprises a means 14 implementing the animationselection and splicing algorithm working with an animation database 16.Set as text parameters of the message to be animated is a style whichthe animation has to be selected in (optionally). The algorithmgenerates a sequence of bytes, i.e., an assembled binary SWF file. Theprocedure in the animation system 10 is under control of an application18 providing access to service. Performed particularly, are access toservice authentication 20, reception 22 of a text animation request,sending 24 a resulting animation, accumulation 26 of statistics, andcontent support 28. Also conducted (in 30) is statistical recording foranalysis and billing.

The algorithm (method) is unique mainly in that a sequence of animationsis selected, semantically corresponding to a specified text. Given a setof animations and a text, the algorithm makes it possible to compare thesequence of these animations to this text. It is unique in that texttemplates are used, an optimum sequence of these templates isdetermined, and a style concept is used.

Mode of Operation of the Web Service Performing Text Animation

The idea of the template-based text visualization consists in that thetext is manipulated to generate an image or animation with the aid ofsearching correspondences to a limited number of predefined templates.An animation according to certain style is selected in compliance witheach template. Animations are sequentially combined into a singlesequence of video images. The text animation algorithms are comprised inthe web service developed for solving these tasks. All metadata used inthe process of animation (templates, animations, styles, etc.) arestored in the database with which the web service operates.

The animation being generated is a template-based one. Therefore, it isa main object of the service to split the text to be animated intosemantically close templates according to a certain sequence, to selectthe respective animation for each template and to splice the animationsinto a single clip. The animation may be styled someway (smiley, Disney,Winnie-the-Pooh, Bidstrup, anti-animation, etc.). For testing anddeploying the animation service, it is “wrapped” into a web interfacewhose main object is to generate animations, to administer templates,animations, to accumulate statistics, etc.

In order to determine the structure of the web service, a number ofdefinitions will be introduced.

Style. This is a visual style to satisfy to at the output. For example,smiley, cartoons, serious. There is at least one default style.

Templates. Templates are a set of phrases in the form of “I #to loveyou”, “Hi”, “To kiss you”. Each template is stored as a selection ofnormalized words. It means that “To kiss you” is stored instead of “Ikiss you”. The template is normalized in the step of adding via the webinterface. Templates are case-insensitive. The number of interwordspaces and word separation by punctuation are ignored.

Group. Groups are preceded by a tag #. A group is a generalization of anumber of symbols. For example, #love—love, adore, in love, wild about.Thus, the group #love aggregates the words “adore”, “love” and others.The groups make it possible to faster define similar templates. Atemplate not comprising a group has a higher priority in terms ofselecting a template.

Animation. A number of animations correspond to each template. Animationhas to be specified with reference to the style. A number of animationsmay exist in the same style. Then, one of them is selected. For eachtemplate established in the system, at least one animation in the “ondefault” style exists unless other style is explicitly established.Template animation—a content file in the swf format (the format may beboth vector and bit mapped). The animation has a “background animation”feature defining that the animation is a background one. Non-backgroundanimations comprise a transparent background. Some background animationssuitable for demonstrating arbitrary foreground animations are neutralbackground.

Misprints. Misprints may occur in the text to be transmitted. Misprintsare corrected by means of the misprinted word=>correct word relationshipset in store.

User. A user is the one who makes an animation request by sending atext. It may be a service, web application, etc. The user is entitled touse the service within certain time limits. The user has theauthentication data stored in the database. The database also stores theinformation regarding the time for access availability to the service. Aset of allowed animation styles may be associated with the user.

In addition to processing the text animation requests, the web serviceaccumulates statistics (FIG. 1) of the use of templates (frequency),occurrence of words in the text, occurrence of words not found in anytemplate, frequency of the use of styles, frequency of the use ofanimations. The web service comprises means implementing the textanimation selection algorithm and means enabling this animation to bereturned to the user or to be sent to the recipient.

Text-Compliant Animation Selection Algorithm

Present at the input of the algorithm are the text and style wherein therespective animations have to be selected (optionally). This data issent to web service.

1. The input text is split into sentences. Splitting is performed withthe aid of standard punctuation separators (“full stop”, “interrogationmark”, “exclamation mark”, “ellipsis”). Splitting is performed by meansof a normal search of separators.

2. A sentence is split into parts based on word separators (splitting isperformed by means of a normal search). Separators include “full stop”,“comma”, “space”, “colon”, “dash”, “semicolon”. Space, carriage return,tabulation characters are cut off from the resulting words at theirbeginning and end.

3. If all words in the text are English words, transliteration isperformed. This is done by means of a symbol-by-symbol comparison of thesequences of English letters to phonetically close sequences of Russianletters (simple substitution table); if the algorithm is used for anEnglish-language or any other content, transliteration may be omitted.

4. Before subsequent normalization, textual substitutions are madeaccording to the substitution dictionary. It allows the words, wordcombinations and sentences as well as special characters to besubstituted with other characters corresponding to more impressivevisualization.

5. Each word is reduced to a normalized form (stemmer). The selection ofa particular stemmer is of no special importance. ALP-supported(automated language processing, http://www.aot.ru/) Lucene.NET(http://www.dotlucene.net/) stemmer may be used as an example fornormalizing a Russian-language text;

6. The words are checked for standard misprints to replace themisprinted words with the correct ones. A general dictionary of thewords (normal forms) included in all sets of templates is maintained andstored in the DB. There are two methods of search and replace:

a simple replacement method according to a dictionary of misprints,containing correct word meanings from a general dictionary of standardmisprints;

a method of searching a correct word with a minimum Levenshtein distanceto the incorrect word being sought for subsequent replacement.Correction of misprints is an optional algorithm step. Correction ofmisprints may be also performed before the words are normalized.

7. The words that are part of the groups (of the generalization ofsynonyms) are replaced with the group names. As a group name, a synonymis usually selected. However, the group name may be arbitrary ingeneral.

8. It is checked whether the cache contains the sequence of templatescorresponding to the normalized misprint-free text obtained in step 6.If so, a sequence of templates is selected from the cache and theprocess goes to step 11. For the purpose of the present invention, cacheis understood as a set of pairs (corrected normalized text; sequence oftemplates) stored in the random-access memory (with very short accesstime), rather than in the database;

9. If no text to be animated is available in the cache, a sequence oftemplates is selected for the normalized text using the algorithm forselection of templates corresponding to the animation; the sequence oftemplates is defined by the algorithm for selection of the sequence oftemplates corresponding to the animation.

10. The resulting sequence of templates is added to the cache byassociating it with the text being sought.

11. Steps 2-10 are repeated for each sentence.

12. The sequences of templates for each sentence are combined in acertain order into a single common sequence of templates.

13. If a style is set, animations are selected corresponding to thestyle provided that for the selected style, an animation of eachtemplate from the sequence is available in this style. If no style isset, a style is randomly selected for which all animations are availablefor the selected templates. If there are a number of such styles, anystyle is randomly selected. If no styles are available, a selection ofanimations in various styles is used.

14. An animation is selected for each template in the selected style. Ifa single template has more than one corresponding animations in onestyle, a random animation is selected. Animations may be divided(optionally) into foreground and background animations. There are anumber of options for “splicing” the animated clips selected into asingle one based on the sequence of templates:

sequential “splicing” of animated files (clips) into a single one, or

“splicing” of foreground animations at the first or last backgroundanimation in the sequence order of “splicing”, or

selecting a random neutral background for displaying foregroundanimations thereat (background animations are displayed as they are).

All animated clips are scaled according to a maximum duration of clipfrom the sequence by centering the same (scaling and positioningalgorithms may differ). In addition to the resulting clip, sound may besuperimposed in the form of an arbitrary audio composition.

15. The “spliced” video clip is converted into an arbitrary, vector orbit mapped, format. For the initial swf animations, it may be, forexample, a swf or MPEG file. The type of the output format of theresulting animated file is of no importance.

16. The original text of request, the selected sequence of templates aresaved in the database; statistics for templates, words, animations, thelist of unknown words and statistics for unknown words are updated.

Algorithm for the Selection of Templates Corresponding to the Animation

The algorithm is used to select animations corresponding to a text.

Algorithm input data: list of templates (is cached upon starting the webservice), normalized text of the sentence without misprints. The list oftemplates is stored in the database in the normalized form.

1. In order to determine the sequence of templates, all templates havingall template words included in a sentence are first selected from thelist. If a particular animation style is set, the templates are selectedfrom the list of templates having animations in the selected stylerather than from the list of all templates.

2. Information regarding the hierarchy of templates is derived from thelist of templates. Template A is said to be higher than template B inthe hierarchy, if all template A words are included in template B. Thehierarchy level determines the template rank.

3. If the templates belonging to the same hierarchy but having differentlevels are included in a single set of templates obtained in step 1, thetemplates with a minimum rank (a higher level) are deleted from thisset.

4. From the list of templates obtained in step 2, an optimum set oftemplates is selected, for which a target function will have the optimumvalue. The target function is given by:

${{f(x)} = {{{k_{1}*\frac{1}{N_{crosses}}} + {k_{2}*N_{coverage}} + {k_{3}*N_{rank}} + {k_{4}*N_{{pairs}\mspace{11mu}{in}{\;\;}{correct}\mspace{14mu}{sequence}}} - {k_{4}*N_{{pairs}\mspace{11mu}{in}\mspace{11mu}{incorrect}{\mspace{11mu}\;}{sequence}}}}->{MAX}}},$

where:

N_(crosses) is a number of crossings of the template words in the set oftemplates (for a set of templates “John walked. John ran. Rabbit ran.Ran.” the number is 3),

N_(coverage) is an aggregate coverage of all words by the templates (thenumber of all words from a sentence, encountered in the templates),

N_(rank) is an aggregate rank of all templates from the set,

N_(pairs in correct sequence) is a number of word pairs of the composite(i.e., consisting of a few words) templates corresponding to thesequence of words in a phrase,

N_(pairs in incorrect sequence) is a number of word pairs of thecomposite templates not corresponding to the sequence of words in aphrase, and

k₁, k₂, k₃, k₄ are empirically calculated coefficients. They have avalue of 0.4, 0.33, 0.4, 0.2, respectively.

The value of function depends on a number of mathematical criteria. Thefunction optimum (its maximum value) may be found in a number of ways:

1. by numerical techniques of multicriteria optimization;

2. by means of an exhaustive search of all sets of templates tocalculate the target function value for each template.

Simplified Algorithm for Determining the Sequence of TemplatesCorresponding to the Animation

A simplified and faster version of the algorithm for determining thesequence of templates corresponding to the animation is as follows:

1. Using the BlockDistance/Levenshtein edit-distance/Jaro-Winklerdistance/Damerau-Levenshtein distance algorithm, all templates areidentified wherein all words are in the phrase being sought.

2. The identified templates are sorted in ascending order by the numberof words. Sequentially running through this formed set of templates, itis checked whether a template is a part of another template from theset. If so, it is discarded. Thus, a list of templates withoutenclosures is obtained.

3. In the resulting set of templates, the templates non-crossing eachother and crossing each other are defined.

4. (Optional) Determined in the crossing templates is the rate ofcrossing (number of word crosses) with the words from the set ofnon-crossing templates and the number of new words covering the phrase,which are not included in this set.

5. Non-crossing templates are added to the resulting set (these are tobe definitely included).

6. (Optional) If no non-crossing templates exist, the process goes tostep 7. From the remaining crossing templates, a set is attempted to beformed, being optimum by the following criteria: maximum aggregate rank,maximum coverage, minimum crosses. This is done as follows:

6.1 a first template is used with a maximum weight (weight=number ofwords);

6.2 templates are then used minimally crossing the first template andnot crossing each other;

6.3 from the remaining templates, those templates are further selectedwhich contain >=50% of new words: templates are sorted by the number ofnew words and are added one at a time. In doing so, a test for wordnovelty is carried out considering the templates being added in theprocess (i.e., if the first template was added with a number of newwords being over 50%, the second template may not be added sinceconsidering the words of the first added template the number of newwords therein will be less).

6.4 If there are several templates with a maximum rank in step 6.1, thenfor the set obtained in step 6.3, a value is calculated as follows:aggregate rank of templates minus number of word crosses. Then, the nexttemplate with a maximum rank is used and steps 6.2-6.4 are repeated.

6.5. A set of templates is selected with a maximum value calculated instep 6.4.

7. The resulting optimum set of templates has to be transformed into asequence. To this end, an average value of the template word positionsin the text is calculated for each template, and templates are sorted bythis average value. The obtained sequence comprises the desired result.

The simplified version of the algorithm may be complicated by addingfurther criteria, from the complete version of the algorithm, for thesearch of an optimum sequence of templates.

Algorithm for Determining the Sequence of Templates Corresponding to theAnimation

In order to determine the sequence of templates, a simple algorithm isused whose input data is a text of a sentence and a set of templatesable to form a most full coverage of the sentence.

1. For each template, its mean position in the sentence is calculated:an arithmetic mean of the sequential word numbers in the text. If atemplate covers several identical words, the first one is used (anembodiment is possible wherein an arithmetic mean of all positions isused).

2. Templates are arranged in ascending order by the mean position in thesentence.

Method of Animation of SMS Messages

Two options are available for the animation of SMS messages.

1. Draw a message to your friends! A person sends an SMS message to ashort number, specifying a subscriber to which the message has to beforwarded. The most appropriate animation closest to the message subjectis identified and sent to said subscriber. Both a static image andanimation may be sent.

2. Visualize your wishes! A person sends an SMS message containing thedesired object to a short number and receives a funny picture of thisobject.

Below is the operating sequence of an embodiment illustrated by FIG. 2wherein animated messages are used for sending to friends.

1. A sending subscriber 32 sends an SMS message 34 to a short numbersuch as 9999. In the SMS message 34, he includes a receiving subscribernumber (for example, 8916000001) and the message text (such as ‘Kissyou, my cutie’).

2. The message is routed through a mobile network operator's (MNO)equipment 36 represented by a tower 38 to an SMS Center (SMSC) 39 fromwhere the data is provided to a billing system 40 for mutual settlementswith service providers and the message itself is forwarded to a serviceprovision system 42 (the use of an intermediate entity (not shown) ispossible).

3. The service provision system 42 receives (44) the SMS 34 and analyzes(46) the received SMS message by identifying (48) the sender anddefining the message text and defining (50) the receiving subscribernumber.

4. The service provision system 42 then makes (52) a request containingthe text to the animation system 10.

5. The animation system generates (selects) animation by selecting therespective data from a particular database in the animation database 16.

6. Following the animation searching and assembling algorithm 14, theselected animation templates are spliced and sent to the serviceprovision system 42.

7. The service provision system 42 receives (54) the animation, forms(56) an MMS by packing (56) the received animation into the MMS andsends (58) it via an MMS Center (MMSC) 60 to the receiving subscriber62.

8. The service provision system sends (64) an SMS message to the sendingsubscriber 32 via the SMSC 60 saying that the animation has been sent orfailed if no MMS has been sent (optionally).

9. The receiving subscriber 62 receives the MMS containing the animatedSMS message on behalf (from the number) of the sending subscriber 32.

10. The sending subscriber 32 receives an SMS message 66 notifying ofsending (optionally).

11. The service provision system 42 also performs (68) statisticalrecording for analysis and billing. An owner 70 of the service provision(mobile network operator, content aggregator, etc.) is supposed tointeract with an owner 72 of the animation system monetization aspects(mutual settlements with regard to animation generation services basedon the number of animation service requests or a monthly fee).

The operating sequence of an embodiment wherein wishes are visualized issomewhat different although the flow chart remains very similar for theparticipants in the process with the only exception that the receivingsubscriber coincides with the sending subscriber.

The sending subscriber 32 sends an SMS message to a short number. Hespecifies the desired object in the SMS message.

2. The message is routed through the mobile network operator's (MNO)equipment 38 to the SMS Center (SMSC) 39 from where the data is providedto the billing system 40 and the message itself is forwarded to theservice provision system 42.

3. The service provision system 42 analyzes the received SMS message byidentifying the sender, defining the object to be visualized andforwarding its textual description to the animation system 10.

4. The animation system 10 selects a picture/animation by selecting therespective data from the animation database 16 and sends the same to theservice provision system 42.

5. The selected animation is formed into an MMS and sent via the MMSCenter (MMSC) 60 to the subscriber 32.

6. The subscriber 32 receives the MMS containing the animated SMSmessage.

The accompanying drawings illustrate the architecture, functionality andoperation of the possible implementations of the systems and methodsaccording to various embodiments of the present invention. Accordingly,each block may comprise a module, a segment or a portion of a code whichcontains one or more executable commands for implementing a certainlogical function(s). It should be also noted that in some alternativeembodiments, the functions designated in the block may be performed inan order other than that shown in the drawings. For example, two blocksshown in series may actually be executed in a reverse order depending inthe enabled functionality. It should be also noted that each illustratedblock and combinations of blocks in the drawings may be implementedeither as specialized hardware-based systems and modules which performspecialized functions or actions, or as combinations of the specializedhardware and computer commands.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to limit the invention to theparticularly provided example. As used herein, the singular forms “a”,“an” and “the” are intended to include the plural forms as well, unlessthe context clearly indicates otherwise. It will be further understoodthat the terms “comprises” and/or “comprising”, “includes” and/or“including” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components and/orgroups thereof.

While particular embodiments of the invention have been illustrated anddescribed above, it will be apparent to those of ordinary skill in theart that any configuration designed for achieving the same object may bepresented instead of the particularly shown embodiments and that theinvention has other applications in other environments. The presentdisclosure is intended to encompass any adaptations or variations of thepresent invention. The following claims are by no means intended forlimiting the scope of invention to particular embodiments describedherein.

The invention claimed is:
 1. A method for animating messages in anatural language, said method comprising the steps of: providing anatural language text message to be animated; dividing said text intosentences; dividing said sentences into words; reducing each word to anormalized form; selecting a sequence of templates for a normalizedtext; combining the sequences of templates for each sentence in acertain order into a single common sequence of templates; selecting ananimation for each template; combining the selected animation files intoa resulting clip, wherein said combining the sequences of templates foreach sentence in a certain order into a single common sequence oftemplates comprises the steps of: (a) selecting from a list alltemplates having all template words included in a sentence; (b) derivingfrom the list of templates obtained in the previous step (a) informationregarding hierarchy of the templates, the template hierarchy leveldetermining a template rank; (c) excluding the templates with a minimumrank from the list of templates obtained in the step (a) if templatesbelonging to the same hierarchy but having different levels are includedin a single set of templates obtained in the step (a); (d) selectingfrom the list of templates obtained in the step (c), an optimum set oftemplates for which a target function has the maximum value, wherein thetarget function is given by:${f(x)} = {{{k_{1} \cdot \frac{1}{N_{crosses}}} + {k_{2} \cdot N_{coverage}} + {k_{3} \cdot N_{rank}} + {k_{4} \cdot N_{{pairs}\mspace{11mu}{in}{\;\;}{correct}\mspace{14mu}{sequence}}} - {k_{4} \cdot N_{{pairs}\mspace{11mu}{in}\mspace{11mu}{incorrect}{\mspace{11mu}\;}{sequence}}}}->{MAX}}$where: N_(crosses) is a number of crossings of the template words in theset of templates, N_(coverage) is an aggregate coverage of all words bythe templates (number of all words from a sentence, encountered in thetemplates), N_(rank) is an aggregate rank of all templates from the set,N_(pairs in correct sequence) is a number of word pairs of the composite(i.e., consisting of a few words) templates corresponding to thesequence of words in a phrase, N_(pairs in incorrect sequence) is anumber of word pairs of the composite templates not corresponding to thesequence of words in a phrase, and k₁, k₂, k₃, k₄ are empiricallycalculated coefficients having values of 0.4, 0.33, 0.4, 0.2,respectively.
 2. The method of claim 1, wherein words, phrases andsymbols are formally replaced with predefined words, phrases or symbolsequivalent thereto.
 3. The method of claim 1, wherein misprints arecorrected in the words.
 4. The method of claim 1, wherein neutralbackground animations for each template are selected.
 5. The method ofclaim 1, further determining whether any sequences of templatescorresponding to the normalized text are available in the cache, andselecting same from the cache if available.
 6. The method of claim 1,further determining whether an animation style is preset for the textprovided and performing either of the following: selecting animationscorresponding to the style which is of each template from the sequenceis available in this style; or selecting animations from a randomlyselected style for which all animations are available for the selectedtemplates if no style is preset; or selecting animations from a randomlyselected style if there is a number of such styles for which allanimations are available for the selected templates, any style israndomly selected; or selecting animations from various styles if nostyles are available for which all animations are available for theselected templates.
 7. The method of claim 1, further comprising savingin a database an original text of request and the selected sequence oftemplates; and updating statistics for templates, words, animations, thelist of unknown words and statistics for unknown words.
 8. The method ofclaim 1, wherein the maximum value of the target function is searchedeither by means of an exhaustive search of the sequence of templates(successively going through all combinations of unique templates) or bymeans of multicriteria optimization.
 9. A method for animating messagesin a natural language, said method comprising the steps of: providing anatural language text message to be animated; dividing said text intosentences; dividing said sentences into words; reducing each word to anormalized form; selecting a sequence of templates for a normalizedtext; combining the sequences of templates for each sentence in acertain order into a single common sequence of templates; selecting ananimation for each template; combining the selected animation files intoa resulting clip, wherein said combining the sequences of templates foreach sentence in a certain order into a single common sequence oftemplates comprises the steps of: finding all templates all words ofwhich are found in the phrase being sought by using the Levenshteinedit-distance algorithm; sorting the found templates by the number ofwords in ascending order and sequentially determining for each templatefrom this formed set of templates, whether the template is a part of(included in) any other template from the set, and deleting the includedtemplates; in the resulting set of templates, defining the templatesnon-crossing each other and crossing each other; adding the non-crossingtemplates to a resulting set; calculating for each template an averagevalue of the template word positions in the text; and sorting thetemplates by that average value to obtain an optimum sequence oftemplates, and wherein if no non-crossing templates exist, an optimumset of templates is formed from the crossing templates by carrying outthe steps of: (aa) selecting a first template with a maximum weight,said template weight being the number of words in the template; (bb)selecting templates minimally crossing the first template andnon-crossing each other; (cc) selecting from the remaining templatesthose templates that contain >=50% of new words; wherein (d) if in thestep (aa) a few templates with a maximum weight are available, selectingas the resulting set of templates the set having a difference betweenthe aggregate rank of templates and the number of word crosses which islarger than same for other sets.